package biblio.model;

/**
 * Classe dont les instances sont les objets revues.
 * @author Groupe 2
 * @version 29/10/13
 */
public class Revue{
	
	/** Informations sur la revue*/
	private String rang;
	private String titre;
	private String for1;
	private String for1name;
	private String for2;
	private String for2name;
	private String for3;
	private String for3name;
	
	/**
	 * Constructeur qui initialise toutes les variables d'instance
	 * a null
	 */
	public Revue()
	{
		this.rang = null;
		this.titre = null;
		this.for1 = null;
		this.for1name = null;
		this.for2 = null;
		this.for2name = null;
		this.for3 = null;
		this.for3name = null;
	}
	
	/**
	 * Constructeur qui initialise les variables d'instances a partir
	 * d'une chaine de caractere (qui provient du fichier d'input)
	 * 
	 * Il faut que value != null
	 */
	public Revue(String value)
	{
		String[] val = value.split(",");
		if(val.length == 8){
			this.rang=val[0];
			this.titre=val[1];
			this.for1=val[2];
			this.for1name=val[3];
			this.for2=val[4];
			this.for2name=val[5];
			this.for3=val[6];
			this.for3name=val[7];
		}
	}
	
	/**
	 * Constructeur qui initialise les variables d'instance aux valeurs
	 * passees en arguments
	 */
	public Revue(String rang, String titre, String for1, String for1name, String for2, String for2name, String for3, String for3name)
	{
		this.rang = rang;
		this.titre = titre;
		this.for1 = for1;
		this.for1name = for1name;
		this.for2 = for2;
		this.for2name = for2name;
		this.for3 = for3;
		this.for3name = for3name;
	}
	
	/**
	 * @pre /
	 * @post retourne le rang de la revue
	 */
	public String getRang() {
		return rang;
	}
	
	/**
	 * @pre /
	 * @post fixe le rang de la revue a la valeur passee en argument
	 */
	public void setRang(String rang) {
		this.rang = rang;
	}
	
	/**
	 * @pre /
	 * @post retourne le titre de la revue
	 */
	public String getTitre() {
		return titre;
	}

	public void setTitre(String titre) {
		this.titre = titre;
	}
	
	/**
	 * @pre /
	 * @post retourne le FOR1 de la revue
	 */
	public String getFor1() {
		return for1;
	}
	
	/**
	 * @pre /
	 * @post fixe le FOR1 a la valeur passee en argument
	 */
	public void setFor1(String for1) {
		this.for1 = for1;
	}
	
	/**
	 * @pre /
	 * @post retourne le nom de FOR1 de la revue
	 */
	public String getFor1name() {
		return for1name;
	}

	/**
	 * @pre /
	 * @post fixe le nom de FOR1 a la valeur passee en argument
	 */
	public void setFor1name(String for1name) {
		this.for1name = for1name;
	}
	
	/**
	 * @pre /
	 * @post retourne le FOR2 de la revue
	 */
	public String getFor2() {
		return for2;
	}
	
	/**
	 * @pre /
	 * @post fixe le FOR2 a la valeur passee en argument
	 */
	public void setFor2(String for2) {
		this.for2 = for2;
	}
	
	/**
	 * @pre /
	 * @post retourne le nom de FOR2 de la revue
	 */
	public String getFor2name() {
		return for2name;
	}
	
	/**
	 * @pre /
	 * @post fixe le nom de FOR2 a la valeur passee en argument
	 */
	public void setFor2name(String for2name) {
		this.for2name = for2name;
	}
	
	/**
	 * @pre /
	 * @post retourne le FOR3 de la revue
	 */
	public String getFor3() {
		return for3;
	}
	
	/**
	 * @pre /
	 * @post fixe le FOR3 a la valeur passee en argument
	 */
	public void setFor3(String for3) {
		this.for3 = for3;
	}
	
	/**
	 * @pre /
	 * @post retourne le nom de FOR3 de la revue
	 */
	public String getFor3name() {
		return for3name;
	}
	
	/**
	 * @pre /
	 * @post fixe le nom de FOR3 a la valeur passee en argument
	 */
	public void setFor3name(String for3name) {
		this.for3name = for3name;
	}


	@Override
	public String toString() {
		return  (rang != null ? rang + ", " : "")
				+ (titre != null ? titre + ", " : "") 
				+ for1 + ", "
				+ (for1name != null ? for1name + ", " : "")
				+ for2 + ", "
				+ (for2name != null ? for2name + ", " : "")
				+ for3 + ", "
				+ (for3name != null ? for3name : "");
	}
	
	
}
